package com.ctshk.rpc.order.goods.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 商品訂單分頁列表-DTO参数
 * </p>
 *
 * @author 姜斌文
 * @since 2021-04-23
 */
@Data
@ApiModel(value = "MyOrderDetailDTO", description = "我的订单-商品訂單分頁列表")
public class MyOrderDetailDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    // 订单信息 start
    @ApiModelProperty(value = "订单Id")
    private Long id;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "销售方式：1：单品销售；2：打包銷售 （动态套票加入的商品）")
    private Integer saleType;

    @ApiModelProperty(value = "业务类型:1：商品；2：当地玩乐")
    private Integer businessType;

    @ApiModelProperty(value = "产品类型：1：人工录入")
    private Integer productType;

    @ApiModelProperty(value = "付款状态:1：待支付;2：已付款")
    private Integer paymentStatus;

    @ApiModelProperty(value = "预订状态:1：确认预订;2：确认取消")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;

    @ApiModelProperty(value = "订单备注")
    private String orderNotes;

    // 订单信息 end

    // 销售信息 start
    @ApiModelProperty(value = "销售用户id")
    private Long saleUserId;

    @ApiModelProperty(value = "销售用户名称")
    private String saleUserName;

    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "运费金额-運費模板")
    private BigDecimal freightAmount;

    @ApiModelProperty(value = "税费金额")
    private BigDecimal taxAmount;

    @ApiModelProperty(value = "订单来源类型:1：商城；2：小店；3：门店")
    private Integer sourceType;

    @ApiModelProperty(value = "配送方式：用户下单时选择-1：物流配送(订单收货人信息表); 2：门店自提（订单提货人信息表）")
    private Integer deliveryMode;
    // 销售信息end


    @ApiModelProperty(value = "下单用户id")
    private Long userId;

    @ApiModelProperty(value = "下单用户id")
    private Long createId;

    @ApiModelProperty(value = "订单编号")
    private String orderNumber;

    @ApiModelProperty(value = "下单用户名称")
    private String userName;

    @ApiModelProperty(value = "订单来源id：商城，小店，门店 （存取id)")
    private Long sourceId;

    @ApiModelProperty(value = "订单来源名称")
    private String sourceName;


    @ApiModelProperty(value = "订单状态:1：待付款; 2：待发货; 3：待收货; 4：已完成; 5：已取消")
    private Integer orderStatus;


    // 收货人信息
    @ApiModelProperty(value = "收货人")
    private String consignee;

    @ApiModelProperty(value = "收货人手机号码")
    private String consigneePhone;

    @ApiModelProperty(value = "收货人邮箱")
    private String consigneeEmail;

    @ApiModelProperty(value = "收货人地址")
    private String consigneeAddress;


    // 提货人信息
    @ApiModelProperty(value = "提货人")
    private String shipper;

    @ApiModelProperty(value = "提货人手机号码")
    private String shipperPhone;

    @ApiModelProperty(value = "提货门店id")
    private Long shipperStoreId;

    @ApiModelProperty(value = "提货门店名称")
    private String shipperStoreName;

    @ApiModelProperty(value = "提货门店地址")
    private String shipperStoreAddress;

    //订单商品明细
    @ApiModelProperty(value = "订单商品明细")
    List<OrderCommodityPageListDetailDTO> orderCommodityPageListDetailDTOList;

    //商品订单收款明细
    @ApiModelProperty(value = "商品订单收款明细")
    List<OrderCommodityCollectionDTO> orderCommodityCollectionDTOList;

    //商品退款记录明细
    @ApiModelProperty(value = "商品退款记录明细")
    List<OrderCommodityRefundDTO> orderCommodityRefundDTOList;

    @ApiModelProperty(value = "查询号码")
    private String searchCode;

    @ApiModelProperty(value = "小店id")
    private Long shopId;

    @ApiModelProperty(value = "支付截止时间")
    private LocalDateTime payExpireDate;
}
